package cn.seaboot.admin.api.bean;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import javax.validation.constraints.Size;

import javax.validation.constraints.NotNull;
import java.io.Serializable;

/**
 * POJO
 * 接口参数 [t_api_parameter]
 * @author Mr.css on 2018-6-20
 */
@Schema(description = "接口参数 [t_api_parameter] 实体类")
public class ApiParameter implements Serializable {

    /**
     * ID
     */
    @Schema(description = "ID")
    @JsonFormat(shape = JsonFormat.Shape.STRING)
    private Long id;
    /**
     * 最大长度
     */
    @Schema(description = "最大长度")
    private Integer maxLength;
    /**
     * 数值长度
     */
    @Schema(description = "数值长度")
    private Integer numericPrecision;
    /**
     * 数值小数长度
     */
    @Schema(description = "数值小数长度")
    private Integer numericScale;
    /**
     * 是否是对象模型
     */
    @Schema(description = "是否是对象模型")
    private Boolean isModel;
    /**
     * 是否必传
     */
    @Schema(description = "是否必传")
    private Boolean require;
    /**
     * 默认值
     */
    @Size(max = 64)
    @Schema(description = "默认值")
    private String defaultValue;
    /**
     * 样例
     */
    @Size(max = 64)
    @Schema(description = "样例")
    private String example;
    /**
     * 工程ID
     */
    @Size(max = 32)
    @Schema(description = "工程ID")
    private String projectId;
    /**
     * 映射ID
     */
    @Schema(description = "映射ID")
    private Long mappingId;
    /**
     * Controller
     */
    @Size(max = 64)
    @Schema(description = "Controller")
    private String controllerClass;
    /**
     * 函数名
     */
    @Size(max = 64)
    @Schema(description = "函数名")
    private String methodName;
    /**
     * 参数名
     */
    @Size(max = 64)
    @Schema(description = "参数名")
    private String parameterName;
    /**
     * 参数标签
     */
    @Size(max = 64)
    @Schema(description = "参数标签")
    private String parameterLabel;
    /**
     * 参数全类名
     */
    @Size(max = 64)
    @Schema(description = "参数全类名")
    private String className;
    /**
     * 类型
     */
    @Size(max = 32)
    @Schema(description = "类型")
    private String objectType;

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public Integer getMaxLength() {
        return maxLength;
    }

    public void setMaxLength(Integer maxLength) {
        this.maxLength = maxLength;
    }

    public Integer getNumericPrecision() {
        return numericPrecision;
    }

    public void setNumericPrecision(Integer numericPrecision) {
        this.numericPrecision = numericPrecision;
    }

    public Integer getNumericScale() {
        return numericScale;
    }

    public void setNumericScale(Integer numericScale) {
        this.numericScale = numericScale;
    }

    public Boolean getIsModel() {
        return isModel;
    }

    public void setIsModel(Boolean isModel) {
        this.isModel = isModel;
    }

    public Boolean getRequire() {
        return require;
    }

    public void setRequire(Boolean require) {
        this.require = require;
    }

    public String getDefaultValue() {
        return defaultValue;
    }

    public void setDefaultValue(String defaultValue) {
        this.defaultValue = defaultValue;
    }

    public String getExample() {
        return example;
    }

    public void setExample(String example) {
        this.example = example;
    }

    public String getProjectId() {
        return projectId;
    }

    public void setProjectId(String projectId) {
        this.projectId = projectId;
    }

    public Long getMappingId() {
        return mappingId;
    }

    public void setMappingId(Long mappingId) {
        this.mappingId = mappingId;
    }

    public String getControllerClass() {
        return controllerClass;
    }

    public void setControllerClass(String controllerClass) {
        this.controllerClass = controllerClass;
    }

    public String getMethodName() {
        return methodName;
    }

    public void setMethodName(String methodName) {
        this.methodName = methodName;
    }

    public String getParameterName() {
        return parameterName;
    }

    public void setParameterName(String parameterName) {
        this.parameterName = parameterName;
    }

    public String getParameterLabel() {
        return parameterLabel;
    }

    public void setParameterLabel(String parameterLabel) {
        this.parameterLabel = parameterLabel;
    }

    public String getClassName() {
        return className;
    }

    public void setClassName(String className) {
        this.className = className;
    }

    public String getObjectType() {
        return objectType;
    }

    public void setObjectType(String objectType) {
        this.objectType = objectType;
    }
}
